package cn.com.dycc.sys_manage.rolesysmanagement.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import cn.com.dycc.sys_manage.rolesysmanagement.entity.Role;
import cn.com.dycc.sys_manage.rolesysmanagement.entity.RoleInfo;
import cn.com.dycc.sys_manage.rolesysmanagement.entity.RoleResult;





@Repository("roleDao")
public interface RoleDao {
	/**
	 * 增加角色信息
	 * @param role 需要录入的角色信息
	 * @return 增加成功返回1
	 */
	public int addRole(Role role);
	
	/**
	 * 根据角色id查找角色信息
	 * @param roleNo 角色id
	 * @return 查找的角色信息
	 */
	public RoleResult findRoleByRoleNo(
			@Param("role_no")String role_no,
			@Param("org_id")String org_id);
	
	/**
	 * 根据角色名称查找角色信息
	 * @param roleName 角色名称
	 * @return 查找的角色信息
	 */
	public Role findRoleByRoleName(
			@Param("role_name")String role_name,
			@Param("org_id")String org_id);
	
	/**
	 * 查找全部角色信息 20180508更改
	 * @return 全部的角色信息
	 */
	public List<RoleResult> findAll(
			@Param("org_id")String org_id,
			@Param("start")Integer start,
			@Param("limit")Integer limit
			);
	
	/**
	 * 根据id更新角色信息
	 * @param role 更新的角色信息
	 * @return 更新成功返回1
	 */
	public int updateRole(Role role);
	
	/**
	 * 根据角色id删除角色信息
	 * @param roleNo 角色id
	 * @return 删除成返回1
	 */
	public int deleteRoleByRoleNo(
			@Param("role_no")String role_no,
			@Param("org_id")String org_id);
	
//	/**
//	 * 查询所有的菜单名称
//	 * @return
//	 */
//	public List<String> findAllName();
	
	/**
	 * 查询所有角色名称，用于用户角色分配
	 * @return
	 */
	public List<RoleInfo> findAllNameOf(@Param("org_id")String org_id);
	
	/**
	 * 角色列表统计
	 * @return 全部的角色信息
	 */
	public String findRoleListCount(@Param("org_id")String org_id);
	
	/**
	 * 根据登录用户id，查询到菜单url
	 * @param id
	 * @return
	 */
	public List<String> sysProgram(String id);
	
	
}
